As the size of the analog portion of circuits increases it is becoming more challenging to verify the analog design. The difficulty in verification exists whether verifying an analog circuit alone, or a design containing both a digital portion and an analog portion (mixed mode designs). Traditional design verification flows employ different tools and methodologies for analog designs than for digital designs.
Typically, a digital design is verified by employing a hardware description language (HDL), such as Verilog or VHDL (VHSIC hardware description language), and possibly using a Hardware Verification Language (HVL). HDLs are languages that have text-based expressions that can describe temporal behavior and/or circuit structure of an electronic system. For example, a digital design can be described in an HDL using text-based expressions. A simulation program allows the digital design to be simulated by executing the underlying semantics of the expressions written in the HDL language.
A verification program is typically executed along with the simulation of the digital DUT in order to analyze and verify the digital DUT. The verification program can be written in the same HDL that is used to describe the DUT. However, recently HVLs have been developed to aid in the verification of the digital DUT. Among other goals, HVLs are intended to provide programming constructs and capabilities to permit testing a DUT, particularly those DUTs expressed in an HDL, by stimulating certain inputs of the simulation of the digital DUT and monitoring the resulting states of the simulation of the DUT.
In addition to HDLs that are directed towards digital designs, there exist HDLs that are directed towards analog systems (e.g., Verilog-A) and mixed digital/analog systems (e.g., Verilog AMS). However, such analog or mixed mode HDLs do not have the ability to conveniently analyze and verify an analog DUT or a digital/analog DUT.
Typically, the analog portion of the circuit is analyzed and verified with a simulation tool such as SPICE (Simulation Program with Integrated Circuit Emphasis). Currently, there are a number of commercial versions of SPICE. SPICE is able to simulate analog circuits with great accuracy by solving equations that represent electrical behavior of the devices in the circuit. However, due to limitations of the SPICE language, verification of an analog circuit is primarily a manual process, which is tedious and error prone.
For example, SPICE outputs log files containing simulation results. However, it is very tedious for the user to look through the log files. In order to test the circuit under different conditions, a first SPICE simulation is executed with one set of parameters that are input by hand. Then, the parameters are changed by hand and a new simulation is executed.
A minimal amount of automation can be achieved by the user writing script programs that drive a SPICE simulation. For example, the user can write a script program that allows a very limited number of different input signals to be applied to the SPICE simulation. This allows the simulation to step through a limited number of voltage values. However, the input parameters that are changed are typically limited to changing the voltage source from 1.0 volt to 1.1 volt, etc. However, script programs are not convenient for specifying more complex combinations and variations of input parameters to a SPICE simulation.
Because of the vastly different techniques between analyzing the digital and the analog portions of the design, analog and digital simulations are often executed completely independent from each other. Unfortunately, using independent simulations for the two portions of the design can result in inaccuracies. In recent years, tools have emerged that co-simulate by using an HDL simulator for the digital portion and a SPICE simulator for the analog portion. These tools help solve some problems that arise from using two independent simulations. However, even with such a mixed mode co-simulation, analysis and verification of the analog portion is still a tedious and error prone process.
Thus, analyzing an analog DUT is tedious and error prone regardless of whether only the analog portion is being analyzed or whether the digital and analog portions of the design are being analyzed together. Therefore, there is a need for more efficient and accurate techniques for analyzing and verifying an analog circuit design. There is a need for a technique that functions with a simulation of analog circuit design by itself or a co-simulation of an analog design with a circuit digital design.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.